#include "queue.h"


typedef struct status_s {
    // 记录所有子线程的线程id:数组
    pthread_t *thread_ids;
    // 记录子线程个数
    int num;

    // 存储net_fd的队列
    queue_t queue;

    // 锁
    pthread_mutex_t lock;
    pthread_mutex_t lockD;
    // 条件变量
    pthread_cond_t cond;

    // 退出标记位
    int exitFlag;
} status_t;

// 初始化参数, 并且启动子线程
int initStatus(status_t  *status, int num);

// 初始化socket对象(用来三次握手的socket)
int initSocket(int *socket_fd, const char *ip, const char *port);

// 把文件描述符加入epoll监听
int addEpoll(int epoll_fd, int fd);

// 子线程的入口函数
void * threadMain(void *p);


// 给客户端传输文件
int sendFile(int net_fd);
